home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
NeXTSTEP 3.3 (Developer)…68k, x86, SPARC, PA-RISC]
/
NeXTSTEP 3.3 Dev Intel.iso
/
NextDeveloper
/
Source
/
GNU
/
Makefile
< prev
Wrap
Makefile
|
1994-12-23
|
5KB
|
208 lines
##
## NeXT C Compiler Makefile.
##
## Ask Kresten if you have any torubles / questions.
##
#
# ** MANUAL BUILDS **
#
# Use:
# make debug TARGETS='i386 m68k ...'
#
# from this directory to do manual builds. The build compiler(s) will
# appear in ./obj/cc-<target>-on-<host>/ subdirectories of here. Use
# "./xgcc -B./" in there to run the specific compiler. You can also
# just cd to a specific ./obj subdirectory and type "make <foo>" to build
# a specific program, like "cpp" or "cc1objplus".
#
# The makefile will automatically make a clone of the latest binaries
# the first time "make debug" is run. The binaries are kept outside
# of the revision control system.
#
# ** AUTOMATIC BUILDS **
#
# Automatic builds strictly follow the RC makefile API standards. However,
# in order to do a full build, a bootstrap is needed. To do this, simply
# do "make bootstrap" on the build machine, and install the resulting
# symbols in the BuildRoot. Then, do an ordinary "make install".
#
TARGETS= m68k i386 hppa sparc
HOSTS= `arch`
RC_ARCHS= $(HOSTS)
SRCROOT=.
SRC= `cd $(SRCROOT); pwd | sed s,/private,,`
DSTROOT= $(SRC)/dst
SYMROOT= $(SRC)/sym
OBJROOT= $(SRC)/obj
##
## build compilers for targets=$(TARGETS), and hosts=$(RC_ARCHS).
## bootstrap target must have been run before this.
##
debug: obj.clone
./build_gcc --thins \
--srcroot=$(SRC) \
--dstroot=$(DSTROOT) \
--objroot=$(OBJROOT) \
--symroot=$(SYMROOT) \
--cflags="$(RC_CFLAGS) -g" \
--hosts="$(RC_ARCHS)" \
--targets="$(TARGETS)"
obj.clone:
@root=$(OBJROOT); \
if ls -lgd $$root | egrep '^l'; then \
echo "============================================"; \
echo "== CLONING BINARIES, WILL TAKE A WHILE... =="; \
echo "============================================"; \
mv $$root $$root.lnk; \
mkdir $$root; cd $$root.lnk; \
find . -depth -print | cpio -pdl $$root; \
fi; \
touch obj.clone
obj.unclone:
root=$(OBJROOT); \
if ls -lgd $$root.lnk | egrep '^l'; then \
echo "============================================"; \
echo "== REMOVING BINARIES, WILL TAKE A WHILE =="; \
echo "============================================"; \
mv $$root $$root.tree; \
mv $$root.lnk $$root; \
/bin/rm -Rf $$root.tree; \
fi; \
/bin/rm -f obj.clone
config:
./build_gcc --configure \
--srcroot=$(SRC) \
--dstroot=$(DSTROOT) \
--objroot=$(OBJROOT) \
--symroot=$(SYMROOT) \
--cflags="$(RC_CFLAGS) -g" \
--hosts="$(RC_ARCHS)" \
--targets="$(TARGETS)"
build: build_bison build_c++filt
./build_gcc --thins \
--srcroot=$(SRC) \
--dstroot=$(DSTROOT) \
--objroot=$(OBJROOT) \
--symroot=$(SYMROOT) \
--cflags="$(RC_CFLAGS) -g" \
--hosts="$(RC_ARCHS)" \
--targets="$(TARGETS)"
install: build install_bison install_c++filt
./build_gcc --fats \
--srcroot=$(SRC) \
--dstroot=$(DSTROOT) \
--objroot=$(OBJROOT) \
--symroot=$(SYMROOT) \
--cflags="$(RC_CFLAGS)" \
--hosts="$(RC_ARCHS)" \
--targets="$(TARGETS)"
make installGNUsrc SRCROOT=$(DSTROOT)/NextDeveloper/Source/GNU
mkdirs $(DSTROOT)/usr/local/RelNotes
install -m 555 cc++ $(DSTROOT)/bin
install -m 555 ld++ $(DSTROOT)/bin
install -m 444 Compiler.rtf $(DSTROOT)/usr/local/RelNotes
install -m 444 CompilerPrivate.rtf $(DSTROOT)/usr/local/RelNotes
##
## build compilers for target=$(RC_ARCHS), and host=`arch`
##
bootstrap: build_bison
./build_gcc --fats \
--srcroot=$(SRC) \
--dstroot=$(DSTROOT) \
--objroot=$(OBJROOT) \
--symroot=$(SYMROOT) \
--cflags="$(RC_CFLAGS)" \
--hosts=`arch` \
--targets="$(RC_ARCHS)"
clean: clean_bison
./build_gcc --clean \
--srcroot=$(SRC) \
--dstroot=$(DSTROOT) \
--objroot=$(OBJROOT) \
--symroot=$(SYMROOT) \
--cflags="$(RC_CFLAGS)" \
--hosts="$(RC_ARCHS)" \
--targets="$(TARGETS)"
installsrc: SRCROOT
mkdirs $(SRCROOT)/cc
if [ $(SRCROOT) != . ]; then \
tar cBf - `ls -1 | egrep -v '^(obj|dst|sym)$'` \
| (cd $(SRCROOT); tar xvf -); \
fi
installGNUsrc: SRCROOT
mkdirs $(SRCROOT)/cc
if [ $(SRCROOT) != . ]; then \
tar cBf - `ls -1 | egrep -v '^(obj|dst|sym|SGS)$'` \
| (cd $(SRCROOT); tar xvf -); \
chown -R root.wheel $(SRCROOT); \
fi
installhdrs: DSTROOT
DSTROOT:
mkdirs $(DSTROOT)
SRCROOT:
@if [ -n "${$@}" ]; \
then \
exit 0; \
else \
echo Must define $@; \
exit 1; \
fi
build_c++filt:
(cd $(SRCROOT)/c++filt; \
$(MAKE) build \
SYMROOT="$(SYMROOT)" \
SRCROOT="$(SRCROOT)" )
install_c++filt:
(cd $(SRCROOT)/c++filt; \
$(MAKE) install \
SYMROOT="$(SYMROOT)" \
DSTROOT="$(DSTROOT)" \
SRCROOT="$(SRCROOT)" )
build_bison: $(OBJROOT)/bison_`arch`_obj/Makefile
(cd $(OBJROOT)/bison_`arch`_obj; \
make CFLAGS="${RC_CFLAGS}" \
LDFLAGS="${RC_CFLAGS}" )
$(OBJROOT)/bison_`arch`_obj:
mkdirs $(OBJROOT)/bison_`arch`_obj
$(OBJROOT)/bison_`arch`_obj/Makefile: $(OBJROOT)/bison_`arch`_obj
(cd $(OBJROOT)/bison_`arch`_obj; $(SRCROOT)/bison/configure)
install_bison: build_bison
mkdirs $(DSTROOT)/usr/local
(cd $(OBJROOT)/bison_`arch`_obj; \
$(MAKE) install \
CFLAGS="${RC_CFLAGS}" \
LDFLAGS="${RC_CFLAGS}" \
prefix="$(DSTROOT)/usr/local")
clean_bison:
-(cd $(OBJROOT)/obj.bison; $(MAKE) clean)